/******************************************************************************
 *
 * @file       customizeedit.h
 * @brief      ChatDialog 界面的搜索框设置
 *
 * @author     ax
 * @date       2024/06/01
 * @history
 *****************************************************************************/


#ifndef CUSTOMIZEEDIT_H
#define CUSTOMIZEEDIT_H

#include <QLineEdit>
#include <QDebug>

class CustomizeEdit : public QLineEdit
{
    Q_OBJECT

public:
    CustomizeEdit(QWidget* parent = nullptr);
    void SetMaxLength(int maxLen);

protected:
    void focusOutEvent(QFocusEvent* event) override{
        // 执行失去焦点时的处理逻辑
        // qDebug() << "CustomizeEdit focusout";
        // 调用基类的 focusOutEvent() 方法，保证基类的行为得到执行
        QLineEdit::focusOutEvent(event);
        // 发送失去焦点得信号
        emit sig_foucus_out();
    }

signals:
    void sig_foucus_out();

public slots:


private:
    void limitTextLength(QString text){
        if(_max_len <= 0) return;

        QByteArray byteArray = text.toUtf8();
        if(byteArray.size() > _max_len){
            byteArray = byteArray.left(_max_len); // 如果长度大于设定的长度，就直接截取[0, _max_len)
            this->setText(QString::fromUtf8(byteArray));
        }
    }


    int _max_len;
};

#endif // CUSTOMIZEEDIT_H
